Systems and methods to manage workload domains with heterogeneous hardware specifications

ABSTRACT

A system and method for automatic workload domain deployment in a computing environment uses hardware groups (HGs) formed from hardware specifications (HSs) for a plurality of free host computers in the computing environment to select the free host computers to deploy a workload domain. When a capacity requirement for the workload domain cannot be met with the free host computers belonging to one of the HSs, a particular HG from the HGs is identified that can meet the capacity requirement with the free hosts belonging to the HSs of the particular HG. The workload domain is then deployed to deploy using at least some of the free hosts belonging to the HSs of the particular HG.

BACKGROUND

Virtualization of physical computer systems provides numerous benefitssuch as the execution of multiple virtual computer systems on a singlephysical computer, the replication of virtual computer systems, the livemigration of virtual computer systems across multiple physicalcomputers, etc. Such virtualization of physical computer system allowsfor creation of workload domains. A workload domain is an abstractionthat can be applied to a number of different types of compute workloads,which allows an administrator to deploy capacity for specific workloadtypes using a policy-driven approach on top of modular, standardizedphysical computers. A workload domain has a set of policies that areconfigurable by a user during the deployment process, such as desiredlevels of availability, performance and storage. In order to create aworkload domain or expand an existing workload domain, an administratortypically has to manually select physical computers to be used for thatworkload domain from a pool of available physical computers.

Manual selection of physical computer for workload domain creation orexpansion, however, can be time consuming and burdensome when the numberof physical computers is high and the physical computers have varyingcapabilities and capacities. This is the situation developing in moderndata centers as new computers are installed and old computers degrade.Over time, data centers can contain many hardware generations andcomputers having incompatible configurations.

SUMMARY

A system and method for automatic workload domain deployment in acomputing environment uses hardware groups (HGs) formed from hardwarespecifications (HSs) for a plurality of free host computers in thecomputing environment to select the free host computers to deploy aworkload domain. When a capacity requirement for the workload domaincannot be met with the free host computers belonging to one of the HSs,a particular HG from the HGs is identified that can meet the capacityrequirement with the free hosts belonging to the HSs of the particularHG. The workload domain is then deployed to deploy using at least someof the free hosts belonging to the HSs of the particular HG.

A computer-implemented method for automatic workload domain deploymentin a computing environment in accordance with an embodiment of theinvention comprises receiving a capacity requirement for a workloaddomain, obtaining a plurality of hardware specifications (HSs) for aplurality of free host computers in the computing environment, the HSsspecifying at least CPU information, storage configuration and memorysize, when the capacity requirement cannot be met with the free hostcomputers belonging to one of the HSs, forming a plurality of hardwaregroups (HGs) from the HSs, wherein each HG includes multiple HSs,identifying a particular HG from the HGs that can meet the capacityrequirement with the free hosts belonging to the HSs of the particularHG, and deploying the workload domain using at least some of the freehosts belonging to the HSs of the particular HG. In some embodiments,the steps of this method are performed when program instructionscontained in a non-transitory computer-readable storage medium areexecuted by one or more processors.

A system in accordance with an embodiment of the invention comprisesmemory and at least one processor configured to receive a capacityrequirement for a workload domain, obtain a plurality of hardwarespecifications (HSs) for a plurality of free host computers in thecomputing environment, the HSs specifying at least CPU information,storage configuration and memory size, when the capacity requirementcannot be met with the free host computers belonging to one of the HSs,form a plurality of hardware groups (HGs) from the HSs, wherein each HGincludes multiple HSs, identify a particular HG from the HGs that canmeet the capacity requirement with the free hosts belonging to the HSsof the particular HG, and deploy the workload domain using at least someof the free hosts belonging to the HSs of the particular HG.

Other aspects and advantages of embodiments of the present inventionwill become apparent from the following detailed description, taken inconjunction with the accompanying drawings, illustrated by way ofexample of the principles of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a computing environment with an automaticworkload domain manager in accordance with an embodiment of theinvention.

FIG. 2 illustrates components of a cloud computing management system inthe computing environment in accordance with an embodiment of theinvention.

FIG. 3 illustrates an example of a hardware specification (HS) used bythe automatic workload domain manager in accordance with an embodimentof the invention.

FIG. 4 illustrates an example of a hardware group (HG) used by theautomatic workload domain manager in accordance with an embodiment ofthe invention.

FIG. 5 is a high-level diagram illustrating loss factors, guaranteefactors, and host loads, which may be used by the automatic workloadmanager to automatically select hosts for a workload domain, inaccordance with an embodiment of the invention;

FIG. 6 illustrate a process flow diagram of an automatic workload domaindeployment operation for a new workload domain executed by the automaticworkload domain deployment manager in accordance with an embodiment ofthe invention.

FIG. 7 is a process flow diagram illustrating a process to select HSs ofa particular HG to form a cluster of host computers for a workloaddomain in accordance with an embodiment of the invention.

FIG. 8 is a process flow diagram of an automatic workload domaindeployment operation to expand an existing workload domain executed bythe automatic workload domain manager in accordance with an embodimentof the invention.

FIG. 9 illustrates an environment in which automatic selection of aplurality of hosts for a new or existing workload domain can be achievedin accordance with an embodiment of the invention.

FIG. 10 is a flow diagram of a computer-implemented method for automaticworkload domain deployment in a computing environment in accordance withan embodiment of the invention.

Throughout the description, similar reference numbers may be used toidentify similar elements.

DETAILED DESCRIPTION

Cloud computing is based on the deployment of many physical resourcesacross a network, virtualizing the physical resources into virtualresources, and provisioning the virtual resources for use across cloudcomputing services and applications, which may involve deployingworkload domains. Example systems for supporting workload domains aredescribed in U.S. patent application Ser. No. 15/585,172, titled“METHODS AND APPARATUS TO MANAGE WORKLOAD DOMAINS IN VIRTUAL SERVERRACKS” filed May 3, 2017. For its descriptions of cloud computingtechnologies using workload domains and other teachings, patentapplication Ser. No. 15/585,172 is herein included by reference in itsentirety.

Turning now to FIG. 1, a block diagram of a computing environment 101with an automatic workload domain manager 103 in accordance with anembodiment of the invention is shown. The computing environment 101 canbe used to create and manage workload domains for cloud computingsolutions. As described in detail below, the automatic workload domainmanager 103 facilitates an automated process for selecting hostcomputers with different hardware specifications for workload domaindeployment of workload domains.

As shown in FIG. 1, the computing environment 101 includes a number ofvirtual server racks 104 with each virtual server rack containing anumber of host computers 107, which are sometimes referred to hereinsimply as “hosts”. The virtual server racks 104 are physical racks,holding physical computers, physical networking gear, and possibly othercloud computing elements, such as network attached storage (NAS)devices, storage area network (SAN) devices, or other storage devices.The network gear provides an internal network 108 inside each virtualserver rack 104 over which the hosts 107 communicate. The network gearalso provides an external network 109 over which the hosts 107 indifferent virtual server racks 104 can communicate with each other andthe outside world.

The hosts 107 may be constructed on a server grade hardware platform112, such as an x86 architecture platform. As shown, the hardwareplatform of each host may include conventional components of a computingdevice, such as one or more processors (e.g., CPUs) 113, system memory114, a network interface 115, storage 116, and other I/O devices suchas, for example, a mouse and a keyboard (not shown). The processor 113is configured to execute instructions, for example, executableinstructions that perform one or more operations described herein andmay be stored in the memory 114 and the storage 116. The memory 114 isvolatile memory used for retrieving programs and processing data. Thememory 114 may include, for example, one or more random access memory(RAM) modules. The network interface 115 enables the host 107 tocommunicate with another device via a communication medium, such as anetwork 122 within the private cloud computing environment. The networkinterface 115 may be one or more network adapters, also referred to as aNetwork Interface Card (NIC). The storage 116 represents local storagedevices (e.g., one or more hard disks, flash memory modules, solid statedisks and optical disks) and/or a storage interface that enables thehost to communicate with one or more network data storage systems.Example of a storage interface is a host bus adapter (HBA) that couplesthe host to one or more storage arrays, such as a storage area network(SAN) or a network-attached storage (NAS), as well as other network datastorage systems. The storage 116 is used to store information, such asexecutable instructions, cryptographic keys, virtual disks,configurations and other data, which can be retrieved by the host.

Each host 107 may be configured to provide a virtualization layer thatabstracts processor, memory, storage and networking resources of thehardware platform 112 into virtual computing instances, e.g., virtualmachines 110, that run concurrently on the same host. The virtualmachines run on top of a software interface layer, which is referred toherein as a hypervisor 111, that enables sharing of the hardwareresources of the host by the virtual machines. One example of thehypervisor 111 that may be used in an embodiment described herein is aVMware ESXi™ hypervisor provided as part of the VMware vSphere® solutionmade commercially available from VMware, Inc. The hypervisor 111 may runon top of the operating system of the host or directly on hardwarecomponents of the host. For other types of virtual computing instances,the host may include other virtualization software platforms to supportthose virtual computing instances, such as Docker virtualizationplatform to support software containers.

As illustrated in FIG. 1, one of the hosts 107 in each virtual serverrack 104 can be designated as a cluster management server 105. Thecluster management server 105 can run a virtualization manager 106 whichcan be software that interacts with the hypervisors 111 of the hosts 107in the same virtual server rack 104 to thereby coordinate the creation,starting, running, shutdown, and deletion of virtual machines 110 and tootherwise provision, manage and monitor resources within that virtualserver rack 104. The virtualization manager 106 can be an applicationprogram running on a virtual computing instance, such as a virtualmachine, in the cluster management server 105 that can communicate withthe hypervisors 111 of the hosts 107 in the same virtual server rack 104using the internal network 108 and the external network 109. The clustermanagement server 105 may include additional virtual computinginstances, such as virtual machines, running various other applicationprograms. As an alternative, the virtualization manager 106 may be anapplication program running directly on the physical hardware of thecluster management server 105, not on a virtual computing instance.

The computing environment 101 also includes a cloud computing managementsystem 102 with the automatic workload domain manager 103. The cloudcomputing management system 102 operates to provision, manage andmonitor the physical and logical resources within the computingenvironment 101 to manage workload domains deployed in the computingenvironment. The cloud computing management system 102 can beimplemented as software running on any computing system in the computingenvironment 101, such as one of the hosts 107 or one of the virtualmachines 110 running on any host 107 in the virtual server racks 104. Insome embodiments, the cloud computing management system 102 may beimplemented as a group of cooperating software programs running onnumerous hosts and/or virtual machines in the computing environment 101,and communicating via the networks 108 and 109.

The automatic workload domain manager 103 operates to execute anautomatic workload domain deployment operation in which free hosts areselected for a workload domain based on hardware similarities. Theautomatic workload domain manager tries to select free hosts that havethe same hardware specifications. However, if this is not possible, theautomatic workload domain manager will select host computers withsimilar hardware specifications with consideration of other parameters,such as capacity, redundancy and performance. The automatic workloaddomain manager can be a component of the cloud computing managementsystem 102, as illustrated in FIG. 1, or can be a separate softwareapplication that can interact with cloud computing management system.The workload domain manager and its operation are described in moredetail below.

FIG. 2 illustrates components of the cloud computing management system102 in accordance with an embodiment of the invention. As shown in FIG.2, the cloud computing management system 102 includes an operations andmanagement module 201 with the automatic workload domain manager 103 andVMware vSphere® management module 203. In one implementation, theoperations and management module 201 is a VMware Cloud Foundation™ (VCF)SDDC manager. These components of the cloud computing management system102 operate to create and manage workload domains, such as workloaddomains 208A and 208B.

The workload domains 208A and 208B can be created based on user inputsthat specify one or more of domain type, security, availabilityrequirements, performance requirements, and capacity requirements. Basedon these user inputs, the operations and management component 201 candetermine whether deployment of the workload domains 208A and 208B ispossible. If deployment is possible, the operations and managementcomponent 201 can deploy the workload domains 208A and 208B withsuitable management components, capacity, and settings that meet theuser-specified requirements with the assistance of the VMware vSphere®management module 203.

The VMware vSphere® management module 203 can use a suite ofvirtualization infrastructure components, such as platform servicescontrollers (PSCs) 204, a vCenter® server 205, a vRealize® operationscomponent 206, and a Log Insight™ component 207. The vCenter® server 205is a centralized management application that administrators can use tomanage ESXi™ hypervisors 211, which may be running on the hosts 107 inthe virtual server racks 104. The VMware vRealize® operations component206 is an example of a software platform that can help administratorsbuild and manage heterogeneous hybrid clouds. The Log Insight™ component207 is a tool that provides for the collection, viewing, managing, andanalysis of log data such as syslog data generated within ESXi™hypervisors 211. The PSC 204 can provide infrastructure securitycapabilities such as single sign on (SSO), which can be configured withan active directory server 202 that administrators can use to grant useraccess to the management applications in the vSphere management module203.

As shown in FIG. 2, each of the workload domains 208A and 208B includesa number of the ESXi™ hypervisors 211 running on selected hosts 107 inthe virtual server racks, which are managed by the vCenter® server 205running in that workload domain. Each of the workload domains 208A and208B also includes a VMware NSX® manager 209, which manages logicalnetworking resources for that workload domain. Each of the workloaddomains 208A and 208B may be governed by policies 201, which may includecommon virtual storage area network (VSAN), (high availability) HA, anddistributed resource scheduler (DRS) policies. VSAN policies can governthe properties of virtual storage made available to the hosts 107 orvirtual machines 110. HA policies can govern the detection of failedhosts and virtual machines, and the relaunching of failed virtualmachines. DRS policies can govern the migration of virtual machinesamongst hosts based on virtual machine busyness and host capacities.These policies for each workload domains 208A and 208B may be specifiedand changed by user input.

In order to deploy workload domains, such as the workload domains 208Aand 208B, in the computing environment 101, some of the available hosts107 in the virtual server racks 104, which may have different hardwarespecifications, have to be selected for the workload domains. Asdescribed in detail below, the workload domain manager 103 facilitatesan automated process of selection hosts for workload domain deployment,which may be for creating a new workload domain or expanding an existingworkload domain.

FIG. 3 illustrates an example of a hardware specification (HS) 301 usedby the automatic workload domain manager 103 in accordance with anembodiment of the invention. An HS specifies the hardware properties ofone or more hosts 107 in the computing environment 101. Each host in thecomputing environment belongs to exactly one HS. However, multiple hostscan belong to the same HS. All the hosts belonging to the same HS willhave exactly the same hardware properties. A cluster of hosts for aworkload domain or a workload domain cluster can have hosts belonging toone or more HS. The host properties specified by the HS 301 can includeCPU information, such as CPU model 302, number of CPU cores 304 and CPUfrequency 303. In addition, the host properties specified by the HS 301can include memory size 307, storage configuration (storage types—e.g.,hard disk drive (HDD), solid-state drive (SSD) and hybrid, controller,storage profiles) 305, number of HDD 306, number of SSD 308, hoststorage size or capacity 309, HDD storage size or capacity 310, and SSDsize or capacity. Host CPU capacity can be calculated as the number ofCPU cores multiplied by the CPU frequency. Host random access memoryamount is the memory size 307. Host storage amount 309 is the totalstorage available from all HDDs and SSDs combined.

FIG. 4 illustrates an example of a hardware group (HG) 401 used by theautomatic workload domain manager 103 in accordance with an embodimentof the invention. The HG 401 is a set of HSs, such as the HS 301. Thefree hosts in the inventory of the computing environment 101 belong toone or more HSs. The HSs can be grouped into HGs with each HS in exactlyone HG. A workload domain cluster can have hosts belonging to exactlyone HS. The non-limiting example of FIG. 4 shows the HG 401 with threeHSs 402, 403 and 404.

FIG. 5 is a high-level diagram illustrating loss factors, guaranteefactors, and host loads, which may be used by the automatic workloadmanager 103 to automatically select hosts for a workload domain, inaccordance with an embodiment of the invention. A user can provide acapacity requirement 501 for a domain type. Domain types can be aninfrastructure as a service (DaaS) domain type, a platform as a service(PaaS) domain type, a desktop as a service (DaaS)/virtual desktopinfrastructure (VDI) domain type, a development/test domain type, aproduction domain type, a Cloud Native domain type, an Open stack domaintype, and a Big Data domain type. The capacity requirement 501 canspecify the amount of storage 504 (e.g., in terms of megabytes (MB),gigabytes (GB), terabytes (TB), etc.), total amount of CPU operatingspeed 502 (e.g., in terms of megahertz (MHz), gigahertz (GHz), etc.),and the total amount of RAM 503. Total CPU operating speed for a singleCPU is the sum of the speeds of all the cores in a CPU. For example, ahost with a single 1 GHz CPU having six cores would be interpreted ashaving 6 GHz of CPU operating speed or simply 6 GHz CPU. A host with twosuch CPUs would be interpreted as having 12 GHz CPU.

The capacity requirement 501 specifies 220 GHz as the number of CPU GHz502, 1400 GB RAM as the amount of RAM 503, and 25 TB storage as theamount of storage 504. As such the required CPU capacity for the desiredworkload domain is 220 GHz, the required RAM amount for the workloaddomain is 1400 GB, and the required storage amount is 25 TB. In FIG. 5,two hardware specifications are shown. The first HS 505 indicates a hosthaving 55.2 GHz CPU, 256 GB RAM, and 10 TB storage. The second host HS506 indicates a host having 35.2 GHz CPU, 512 GB RAM, and 14 TB storage.The capacity requirement 501, the first host HS 505, and the second hostHS 506 are used to determine loss and guarantee factors 507 for eachhost. The CPU ratio is the CPU GHz of a host divided by the requestednumber of CPU GHz 502. The memory ratio is the host memory size 307divided by the requested amount of RAM 503. The storage ratio is thehost storage amount 309 divided by the requested amount of storage 504.In this non-limiting example, the values provided are rounded to a fewsignificant digits while the calculations are performed with many moresignificant digits. For the first host, the CPU ratio, memory ratio,storage ratio, loss factor and guarantee factor are 0.25, 0.18, 0.4,0.07, and 0.18, respectively. For the second host, the CPU ratio, memoryratio, storage ratio, loss factor and guarantee factor are 0.16, 0.37,0.56, 0.21, and 0.16, respectively.

The host load for each host 505, 506 or how much load can be placed oneach host can be determined by multiplying the values in the capacityrequirements by the guarantee factor. The host load of the first host is40.22 GHz CPU, 256 GB RAM, and 10 TB storage. The host load of thesecond host is 35.2 GHz CPU, 224 GB RAM, and 14 TB storage. The lossfactors, guarantee factors, and host loads of this example aresimplified in that the storage ratio is not considered and because thehost loads indicate the respective host's total storage. The total hostload for a workload domain is the sum of the host loads of the hosts inthe workload domain. In the illustrated example, a workload domainhaving the first host and the second host has a total host load 512 of75.42 GHz CPU, 480 GB RAM, and 24 TB storage. The capacity requirement501 is met when the CPU GHz, RAM, and storage of total host load 512 areat least as large as those of the capacity requirement 501. Thus, in theillustrated example, additional hosts must be added to the workloaddomain to satisfy the capacity requirement 501.

FIG. 6 is a process flow diagram of an automatic workload domaindeployment operation for a new workload domain (WLD) executed by theautomatic workload domain manager 103 in accordance with an embodimentof the invention. At block 601, the automatic workload domain deploymentoperation is started in response to a user request to deploy the newworkload domain. Next, at block 602, user-specified capacity andredundancy requirements for the workload domain are received, which willbe used to select the appropriate HS, HG and/or hosts for the workloaddomain. A redundancy requirement specifies the number of minimum hostsfor the workload domain and the location of those hosts. In anembodiment, there may be three possible redundancy requirements for userto specify, as shown in the following table.

Redundancy Host location Min number of hosts High Single rack 5 NormalMulti rack 3 Low Multi rack 3

Next, at block 603, host specifications (HSs) of all free hosts 107 inthe computing environment 101 are obtained. In an embodiment, the HSs ofall free hosts may be formed by the automatic workload domain manager103 using information from the vSphere management module 203.

Next, at block 604, the HSs are ordered using storage criteria andexpansion criteria. In an embodiment, the storage criteria includestorage criteria values of “Prefer Hybrid” and “Prefer All-Flash” sothat the HSs are ordered based on the type of storage and storagecapacity. In another embodiment, the storage criteria include storagecriteria values of different storage profiles as defined by VSANfunctionality. In an embodiment, the expansion criteria includeexpansion criteria values of “Prefer biggest group” and “Prefer smallestgroup” so that the HSs are ordered based on the number of hosts thatbelong to the HSs. The ordering of the HSs is based on a combination ofa storage criteria value and an expansion criteria value so that thefirst HS is the HS that best conforms to that combination of storage andexpansion criteria values. Thus, for a combination of “Prefer All-Flash”and “Prefer biggest group” values, the best HS may specify all flashstorage with the largest storage capacity and the largest number ofhosts that belong to that HS, the second best HS may specify all flashstorage with the second largest capacity and/or the second largestnumber of hosts that belong to that HS, and so on. The exact combinationof storage and expansion criteria values for the HS ordering may bepreset or user selected at the operations and management module 201. Inan embodiment, the exact combination of storage and expansion criteriavalues is defined by the workload domain (WLD) performance setting, asshown in the following table.

WLD Performance Storage criteria Expansion criteria High PreferAll-Flash Prefer biggest group Standard Prefer Hybrid Prefer biggestgroup Development Prefer Hybrid Prefer smallest group

Next, at block 605, the HSs are checked to see if any one of the HSs canbe used to form a cluster of hosts for the workload domain based on theuser-specified capacity and redundancy requirements for the workloaddomain. In an embodiment, the HSs are individually checked in orderstarting from the best HS, the second best HS and so on. If the workloaddomain can be formed using one HS, the workload domain is deployed usingthe first HS that can be used to form a cluster of host computersbelonging to that first HS for the workload domain, at block 606. Thehost computers can be added to the workload domain to satisfy thecapacity requirement in the manner similar to the example illustrated inFIG. 5. The operation then comes to an end, at block 612.

If the workload domain cannot be formed using one HS, all possible HGsare formed from the HSs, at block 607. The HGs are formed by inspectingthe hardware properties specified in the HSs and grouping the HSstogether to create the HGs based on the hardware properties, e.g., sameCPU model and same storage type. Next, at block 608, the HGs are orderedusing storage criteria and expansion criteria in a similar manner asdescribed above with respect to HSs.

Next, at block 609, the HGs are checked to see if any one of the HGs canbe used to form a cluster of hosts for the workload domain based on theuser-specified capacity and redundancy requirements for the workloaddomain. In an embodiment, similar to the HSs, the HGs are individuallychecked in order starting from the best HG, the second best HG and soon. If the workload domain cannot be formed using one HG, a failure isreported, at block 611. The operation then comes to an end, at block607.

However, if the workload domain can be formed using one HG, the workloaddomain is deployed using the first HG that can be used to form a clusterof host computers for the workload domain, at block 610. In anembodiment, a group of HSs in that first HG is formed and used to form acluster of host computers for the workload domain, which is describedbelow with reference to FIG. 7. The operation then comes to an end, atblock 612.

FIG. 7 is a process flow diagram illustrating a process to select HSs ofa particular HG to form a cluster of host computers for the workloaddomain, which is executed at block 610 in the automatic workload domaindeployment operation illustrated in FIG. 6, in accordance with anembodiment of the invention. Thus, in this description, the HG ofinterest is the first HG that can be used to form a cluster of hostcomputers for the workload domain. As described below, this processoperates by creating a set of host cluster groups (HCGs) using the HSsof the HG and identifying the HCGs capable of meeting the user-specifiedcapacity requirement for the workload domain. This process preferssmallest HS count, smallest difference between disk sizes and minimalloss factor to form a cluster of host computers for the workload domain

The process begins at block 701 as part of the automatic workload domaindeployment operation illustrated in FIG. 4. Next, at block 702, anordered list of the HSs in the HG is produced by ordering the HSs withinthe HG by storage size to identify HS(1) through HS(I), where HS(i+1)has less storage than HS(i). As such, there are I HSs formed into a listof HS(1), HS(2), . . . , HS(I). At block 703, a counter, i, is set tozero, which is then incremented by one, at block 704. Next, at block705, HCG(i) is initialized by setting HCG(i)={HS(i)}. At block 706,another counter, j, is set to j=i+1.

Next, at block 707, HS(j) is added to HCG(i), which is now a set of twoHSs. At block 708, HCG(i) is evaluated to determine if there are enoughfree hosts belonging to HSs in HCG(i) to form the workload domain. Ifnot, a check is made whether j=I, at block 709, indicating no more HSscan be added to HCG(i).

If j=I, HCG(i) is deleted, at block 711, because the workload domaincannot be formed using HCG(i). Furthermore, no further HCG(i) will beable meet the capacity requirement of the workload domain. Next, atblock 713, the workload domain is deployed using the HCG with theminimum loss factor among the remaining HCGs. The loss factor for an HCGis derived by selecting hosts belonging to the HSs of that HCG to form acluster of hosts with lowest possible loss factor. The process thencomes to an end, at block 713.

However, if j<I, meaning more HSs can be added to HCG(i), then j isincremented by one, at block 710. The process then loops back to block707, where HS(j) is added to HCG(i). Here, the two counters i and j areused with HCG(i) to iteratively add additional HSs to the HCG until thecapacity requirement is met or until there are no more HSs to add whenj=I.

Turning back to block 708, if there are enough free hosts belong to HSsin HCG(i) to form the workload domain, then a check is made whetheri=I−1, at block 714. If so, the process proceeds to block 712, where theworkload domain is deployed using the free hosts belonging to HCG withthe minimum loss factor among the remaining HCGs. The process then comesto an end, at block 713.

FIG. 8 is a process flow diagram of an automatic workload domaindeployment operation to expand an existing workload domain executed bythe automatic workload domain manager 103 in accordance with anembodiment of the invention. At block 801, the automatic workload domaindeployment operation is started in response to a user request toincrease the capacity requirements for the existing workload domain.Next, at block 802, the HSs for all the free hosts in the computingenvironment 101 and for all the hosts already in the workload domain areobtained. At block 803, the free hosts belonging to the same identicalHS as a host already in the workload domain are added to the workloaddomain until the user-specified capacity requirement is met. In anembodiment, the free hosts that yield the smallest loss factor arepreferred, and thus, are added first to the workload domain. By addinghosts belonging to the same HSs as the hosts already in the workloaddomain, no additional compatibility issues are introduced.

Next, at block 804, a check is made whether the user-specified capacityrequirement has been met. If so, the process proceeds to block 811,where the workload domain is deployed using the added hosts. The processthen comes to an end, at block 812.

However, if the user-specified capacity requirement has not been met,the process proceeds to block 805, where the remaining HSs for the freehosts are sorted based on storage size, forming a sorted list. Next, atblock 806, the free hosts belonging to the HSs with storage sizesbetween the smallest and the largest storage sizes already present inthe workload domain are added to the workload domain in the order ofdecreasing storage sizes until the user-specified capacity requirementis met. In an embodiment, the free hosts that yield the smallest lossfactor are preferred, and thus, are added first to the workload domain.

Next, at block 807, a check is made whether the user-specified capacityrequirement has been met. If so, the process proceeds to block 811,where the workload domain is deployed using the added hosts. The processthen comes to an end, at block 812.

However, if the user-specified capacity requirement has not been met, atthe block 807, the process proceeds to block 808, where the free hostsbelonging to the remaining HSs are added to the workload domain untilthe user-specified capacity requirement is met. The hosts belonging tothe HS with closest storage size from the previously processed HS (whichmay be the largest storage size) may be added first, followed by thehosts belonging to the next HS on the sorted list. In an embodiment, thefree hosts that yield the smallest loss factor are preferred, and thus,are added first to the workload domain.

Next, at block 809, a check is made whether the user-specified capacityrequirement has been met. If so, the process proceeds to block 811,where the workload domain is deployed using the added hosts. The processthen comes to an end, at block 812. If not, the process proceeds toblock 810, where a failure is reported having failed to expand theworkload domain meeting the new capacity requirement. The process thencomes to an end, at block 812.

Turning now to FIG. 9, an environment in which automatic selection of aplurality of hosts for a new or existing workload domain can be achievedin accordance with an embodiment of the invention. As discussed above,automatic selection of a plurality of hosts for a workload domain isperformed by the automatic workload domain manager 103 implementing theprocess flows of FIGS. 6-8.

As shown in FIG. 9, a user can provide workload domain (WLD) performanceand capacity requirements 902 using a user interface (UI) 901, whichinclude a graphical user interface. In some embodiments, the user mayalso provide workload domain redundancy requirement. A placementalgorithm 903, which is executed by the automatic workload domainmanager 103 can receive the performance and capacity requirements 902and interact with a physical resource manager 905, which may reside inthe vSphere management module 203, to select hosts 906 from an inventory904 of free hosts in the virtual server racks 104. The placementalgorithm can implement the process flows of FIGS. 6-8 by which HSs andHGs are created and used to select hosts for a workload domain. Theplacement algorithm can inform the user, by way of the UI, of the hosts,capacity, and warnings 907 resulting from the automated selection ofhosts. Here, the warnings could be provided by the physical resourcemanager 905 to the placement algorithm 903, which then passes them tothe UI 901.

A computer-implemented method for automatic workload domain deploymentin a computing environment in accordance with an embodiment of theinvention is described with reference to a flow diagram of FIG. 10. Atblock 1001, a capacity requirement for a workload domain is received. Atblock 1002, a plurality of hardware specifications (HSs) for a pluralityof free host computers in the computing environment is obtained. The HSsspecify at least CPU information, storage configuration and memory size.At block 1003, when the capacity requirement cannot be met with the freehost computers belonging to one of the HSs, a plurality of hardwaregroups (HGs) is formed from the HSs, wherein each HG includes multipleHSs. At block 1004, a particular HG from the HGs that can meet thecapacity requirement with the free hosts belonging to the HSs of theparticular HG is identified. At block 1005, the workload domain isdeployed using at least some of the free hosts belonging to the HSs ofthe particular HG.

The components of the embodiments as generally described in thisdocument and illustrated in the appended figures could be arranged anddesigned in a wide variety of different configurations. Thus, thedescription of various embodiments, as represented in the figures, isnot intended to limit the scope of the present disclosure, but is merelyrepresentative of various embodiments. While the various aspects of theembodiments are presented in drawings, the drawings are not necessarilydrawn to scale unless specifically indicated.

The present invention may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. The scope of the invention is, therefore, indicatedby the appended claims rather than by this detailed description. Allchanges which come within the meaning and range of equivalency of theclaims are to be embraced within their scope.

Reference throughout this specification to features, advantages, orsimilar language does not imply that all of the features and advantagesthat may be realized with the present invention should be or are in anysingle embodiment of the invention. Rather, language referring to thefeatures and advantages is understood to mean that a specific feature,advantage, or characteristic described in connection with an embodimentis included in at least one embodiment of the present invention. Thus,discussions of the features and advantages, and similar language,throughout this specification may, but do not necessarily, refer to thesame embodiment.

Furthermore, the described features, advantages, and characteristics ofthe invention may be combined in any suitable manner in one or moreembodiments. One skilled in the relevant art will recognize, in light ofthe description herein, that the invention can be practiced without oneor more of the specific features or advantages of a particularembodiment. In other instances, additional features and advantages maybe recognized in certain embodiments that may not be present in allembodiments of the invention.

Reference throughout this specification to “one embodiment,” “anembodiment,” or similar language means that a particular feature,structure, or characteristic described in connection with the indicatedembodiment is included in at least one embodiment of the presentinvention. Thus, the phrases “in one embodiment,” “in an embodiment,”and similar language throughout this specification may, but do notnecessarily, all refer to the same embodiment.

Although the operations of the method(s) herein are shown and describedin a particular order, the order of the operations of each method may bealtered so that certain operations may be performed in an inverse orderor so that certain operations may be performed, at least in part,concurrently with other operations. In another embodiment, instructionsor sub-operations of distinct operations may be implemented in anintermittent and/or alternating manner.

It should also be noted that at least some of the operations for themethods may be implemented using software instructions stored on acomputer useable storage medium for execution by a computer. As anexample, an embodiment of a computer program product includes a computeruseable storage medium to store a computer readable program that, whenexecuted on a computer, causes the computer to perform operations, asdescribed herein.

Furthermore, embodiments of at least portions of the invention can takethe form of a computer program product accessible from a computer-usableor computer-readable medium providing program code for use by or inconnection with a computer or any instruction execution system. For thepurposes of this description, a computer-usable or computer readablemedium can be any apparatus that can contain, store, communicate,propagate, or transport the program for use by or in connection with theinstruction execution system, apparatus, or device.

The computer-useable or computer-readable medium can be an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system(or apparatus or device), or a propagation medium. Examples of acomputer-readable medium include a semiconductor or solid state memory,magnetic tape, a removable computer diskette, a random access memory(RAM), a read-only memory (ROM), a rigid magnetic disc, and an opticaldisc. Current examples of optical discs include a compact disc with readonly memory (CD-ROM), a compact disc with read/write (CD-R/W), a digitalvideo disc (DVD), and a Blu-ray disc.

In the above description, specific details of various embodiments areprovided. However, some embodiments may be practiced with less than allof these specific details. In other instances, certain methods,procedures, components, structures, and/or functions are described in nomore detail than to enable the various embodiments of the invention, forthe sake of brevity and clarity.

Although specific embodiments of the invention have been described andillustrated, the invention is not to be limited to the specific forms orarrangements of parts so described and illustrated. The scope of theinvention is to be defined by the claims appended hereto and theirequivalents.

What is claimed is:
 1. A computer-implemented method for automaticworkload domain deployment in a computing environment, thecomputer-implemented method comprising: receiving a capacity requirementfor a workload domain; obtaining a plurality of hardware specifications(HSs) for a plurality of free host computers in the computingenvironment, the HSs specifying at least CPU information, storageconfiguration and memory size; when the capacity requirement cannot bemet with the free host computers belonging to one of the HSs, forming aplurality of hardware groups (HGs) from the HSs, wherein each HGincludes multiple HSs; identifying a particular HG from the HGs that canmeet the capacity requirement with the free hosts belonging to the HSsof the particular HG; and deploying the workload domain using at leastsome of the free hosts belonging to the HSs of the particular HG.
 2. Thecomputer-implemented method of claim 1, further comprising: when thecapacity requirement can be met with the free host computers belongingto a particular HS of the HSs, deploying the workload domain using atleast some of the free hosts belonging to that particular HS.
 3. Thecomputer-implemented method of claim 1, further comprising: ordering theHSs using at least one of a storage criteria value and an expansioncriteria value; and determining whether the capacity requirement can bemet with the free host computers belonging to each of the HSs in anorder resulting from the ordering.
 4. The computer-implemented method ofclaim 1, further comprising: ordering the HGs using at least one of astorage criteria value and an expansion criteria value; and determiningwhether the capacity requirement can be met with the free host computersbelonging to each of the HGs in an order resulting from the ordering. 5.The computer-implemented method of claim 1, further comprising: orderingthe HSs of the particular HG by storage size; forming a plurality ofhost cluster groups by adding some of the HSs of the particular HGs tothe host cluster groups; and deploying the workload domain using atleast some of the free hosts belonging to the HSs of one of the hostcluster groups.
 6. The computer-implemented method of claim 5, whereinforming the plurality of host cluster groups includes adding the HSs ofthe particular HGs to a particular host cluster group of the hostcluster groups one by one until the capacity requirement can be met withsome of the free host computers belonging to that particular clustergroup.
 7. The computer-implemented method of claim 1, furthercomprising: after forming the workload domain, receiving a new capacityrequirement for the workload domain; and adding to the workload domainthe free hosts belonging to the same HSs already used for the workloaddomain until the new capacity requirement can be met with some of thefree host computers belonging to the same HSs.
 8. Thecomputer-implemented method of claim 7, further comprising: when the newcapacity requirement cannot be met with the free host computersbelonging to the same HSs, adding to the workload domain the free hostsbelonging to the HSs with storage size between smallest and largeststorage sizes already present in the workload domain until the newcapacity requirement can be met with some of the free host computersbelonging to those HSs.
 9. A non-transitory computer-readable storagemedium containing program instructions for automatically selecting of aplurality of hosts for a workload domain, wherein execution of theprogram instructions by one or more processors of a computer systemcauses the one or more processors to perform steps comprising: receivinga capacity requirement for a workload domain; obtaining a plurality ofhardware specifications (HSs) for a plurality of free host computers inthe computing environment, the HSs specifying at least CPU information,storage configuration and memory size; when the capacity requirementcannot be met with the free host computers belonging to one of the HSs,forming a plurality of hardware groups (HGs) from the HSs, wherein eachHG includes multiple HSs; identifying a particular HG from the HGs thatcan meet the capacity requirement with the free hosts belonging to theHSs of the particular HG; and deploying the workload domain using atleast some of the free hosts belonging to the HSs of the particular HG.10. The non-transitory computer-readable storage medium of claim 9,wherein the methods further comprise: when the capacity requirement canbe met with the free host computers belonging to a particular HS of theHSs, deploying the workload domain using at least some of the free hostsbelonging to that particular HS.
 11. The non-transitorycomputer-readable storage medium of claim 9, wherein the methods furthercomprise: ordering the HSs using at least one of a storage criteriavalue and an expansion criteria value; and determining whether thecapacity requirement can be met with the free host computers belongingto each of the HSs in an order resulting from the ordering.
 12. Thenon-transitory computer-readable storage medium of claim 9, wherein themethods further comprise: ordering the HGs using at least one of astorage criteria value and an expansion criteria value; and determiningwhether the capacity requirement can be met with the free host computersbelonging to each of the HGs in an order resulting from the ordering.13. The non-transitory computer-readable storage medium of claim 9,wherein the methods further comprise: ordering the HSs of the particularHG by storage size; forming a plurality of host cluster groups by addingsome of the HSs of the particular HGs to the host cluster groups; anddeploying the workload domain using at least some of the free hostsbelonging to the HSs of one of the host cluster groups.
 14. Thenon-transitory computer-readable storage medium of claim 13, whereinforming the plurality of host cluster groups includes adding the HSs ofthe particular HGs to a particular host cluster group of the hostcluster groups one by one until the capacity requirement can be met withsome of the free host computers belonging to that particular clustergroup.
 15. The non-transitory computer-readable storage medium of claim9, wherein the methods further comprise: after forming the workloaddomain, obtaining a new capacity requirement for the workload domain;and adding to the workload domain the free hosts belonging to the sameHSs already used for the workload domain until the new capacityrequirement can be met with some of the free host computers belonging tothe same HSs.
 16. The non-transitory computer-readable storage medium ofclaim 15, wherein the methods further comprise: when the new capacityrequirement cannot be met with the free host computers belonging to thesame HSs, adding to the workload domain the free hosts belonging to theHSs with storage size between smallest and largest storage sizes alreadypresent in the workload domain until the new capacity requirement can bemet with some of the free host computers belonging to those HSs.
 17. Asystem comprising: memory; and at least one processor configured to:receive a capacity requirement for a workload domain; obtain a pluralityof hardware specifications (HSs) for a plurality of free host computersin the computing environment, the HSs specifying at least CPUinformation, storage configuration and memory size; when the capacityrequirement cannot be met with the free host computers belonging to oneof the HSs, form a plurality of hardware groups (HGs) from the HSs,wherein each HG includes multiple HSs; identify a particular HG from theHGs that can meet the capacity requirement with the free hosts belongingto the HSs of the particular HG; and deploy the workload domain using atleast some of the free hosts belonging to the HSs of the particular HG.18. The system of claim 17, wherein the at least one processor isfurther configured to: when the capacity requirement can be met with thefree host computers belonging to a particular HS of the HSs, deploy theworkload domain using at least some of the free hosts belonging to thatparticular HS.
 19. The system of claim 17, wherein the at least oneprocessor is further configured to: order the HGs using at least one ofa storage criteria value and an expansion criteria value; and determinewhether the capacity requirement can be met with the free host computersbelonging to each of the HGs in an order resulting from the ordering.20. The system of claim 17, wherein the at least one processor isfurther configured to: order the HSs of the particular HG by storagesize; form a plurality of host cluster groups by adding some of the HSsof the particular HGs to the host cluster groups; and deploying theworkload domain using at least some of the free hosts belonging to theHSs of one of the host cluster groups.